﻿Imports kplusDataInterface.KPLUS.DataInterface
Imports kplusEntity.KPLUS.Entity
Imports System.Data.OracleClient

Namespace KPLUS.Data
    Public Class DTipoExposicion
        Public Function fObtenerTipoExposicion(ByVal con As OracleConnection, ByVal strPeriodoMes As String, ByVal intNumVersion As Integer) As EBaseParametro
            Dim objCmd As New OracleCommand()
            objCmd.Connection = con
            objCmd.CommandText = "ODS.PKG_PRM_MANTENIMIENTO.PR_P_SEL_TIPO_EXPOSICION"
            objCmd.CommandType = CommandType.StoredProcedure
            objCmd.Parameters.Add("pocur_TipoExposicion", OracleType.Cursor).Direction = ParameterDirection.Output
            objCmd.Parameters.Add("piv_PeriodoMes", OracleType.VarChar, 6).Value = strPeriodoMes
            objCmd.Parameters.Add("pin_NumVersion", OracleType.Number).Value = intNumVersion

            Dim objReader As OracleDataReader = objCmd.ExecuteReader()

            Dim pos_PeriodoMes As Integer = objReader.GetOrdinal("PeriodoMes")
            Dim pos_NumVersion As Integer = objReader.GetOrdinal("NumVersion")
            Dim pos_CodUsrRegistro As Integer = objReader.GetOrdinal("CodUsrRegistro")
            Dim pos_FlgActivo As Integer = objReader.GetOrdinal("FlgActivo")
            Dim pos_FecRegistro As Integer = objReader.GetOrdinal("FecRegistro")
            Dim pos_TipoOperacion As Integer = objReader.GetOrdinal("TipOperacion")
            Dim pos_FecActualizacionTabla As Integer = objReader.GetOrdinal("FecActualizacionTabla")

            Dim objEBaseParametro As EBaseParametro
            Do While objReader.Read
                objEBaseParametro = New EBaseParametro
                With objEBaseParametro
                    .PeriodoMes = objReader.GetOracleString(pos_PeriodoMes)
                    .NumVersion = objReader.GetOracleNumber(pos_NumVersion)
                    .CodUsrRegistro = objReader.GetOracleString(pos_CodUsrRegistro)
                    .FlgActivo = objReader.GetOracleString(pos_FlgActivo)
                    .FecRegistro = objReader.GetOracleDateTime(pos_FecRegistro)
                    '.TipoOperacion = objReader.GetOracleString(pos_TipoOperacion)
                    .FecActualizacionTabla = objReader.GetOracleDateTime(pos_FecActualizacionTabla)
                End With
            Loop

            objReader.Close()
            Return objEBaseParametro
        End Function
        Public Function fListarTipoExposicion(ByVal con As OracleConnection, ByVal strPeriodoMes As String, ByVal intNumVersion As Integer) As List(Of ETipoExposicion)
            Dim lstETipoExposicion As New List(Of ETipoExposicion)

            Dim objCmd As New OracleCommand()
            objCmd.Connection = con
            objCmd.CommandText = "ODS.PKG_PRM_MANTENIMIENTO.PR_P_SEL_TIPO_EXPOSICION_DET"
            objCmd.CommandType = CommandType.StoredProcedure
            objCmd.Parameters.Add("pocur_TipoExposicionDet", OracleType.Cursor).Direction = ParameterDirection.Output
            objCmd.Parameters.Add("piv_PeriodoMes", OracleType.VarChar, 6).Value = strPeriodoMes
            objCmd.Parameters.Add("pin_NumVersion", OracleType.Number).Value = intNumVersion

            Dim objReader As OracleDataReader = objCmd.ExecuteReader()

            Dim pos_PeriodoMes As Integer = objReader.GetOrdinal("PeriodoMes")
            Dim pos_NumVersion As Integer = objReader.GetOrdinal("NumVersion")
            Dim pos_CodTipoExposicion As Integer = objReader.GetOrdinal("CodTipoExposicion")
            Dim pos_DesTipoExposicion As Integer = objReader.GetOrdinal("DesTipoExposicion")
            Dim pos_PctPonderador As Integer = objReader.GetOrdinal("PctPonderador")
            Dim pos_CodTipoExposicion2A1 As Integer = objReader.GetOrdinal("CoddTipoExposicion2a1")
            Dim pos_FecActualizacionTabla As Integer = objReader.GetOrdinal("FecActualizacionTabla")


            Dim objETipoExposicion As ETipoExposicion
            Do While objReader.Read
                objETipoExposicion = New ETipoExposicion
                With objETipoExposicion
                    .PeriodoMes = objReader.GetOracleString(pos_PeriodoMes)
                    .NumVersion = objReader.GetOracleNumber(pos_NumVersion)
                    .CodTipoExposicion = objReader.GetOracleNumber(pos_CodTipoExposicion)
                    .DesTipoExposicion = objReader.GetOracleString(pos_DesTipoExposicion)
                    .PctPonderador = objReader.GetOracleNumber(pos_PctPonderador)
                    .CodTipoExposicion2A1 = objReader.GetOracleNumber(pos_CodTipoExposicion2A1)
                    .FecActualizacionTabla = objReader.GetOracleDateTime(pos_FecActualizacionTabla)
                End With
                lstETipoExposicion.Add(objETipoExposicion)
            Loop

            objReader.Close()
            Return (lstETipoExposicion)
        End Function
    End Class
End Namespace

